<?
class Campagna {
	function getElenco($min,$max,$orderby,$where) {
		$rs = lancia_procedura("elenco_campagna", "$min,$max,'$orderby',$where");
		return '{'.Get_json("rows", $rs, Array("idcampagna","data_start2","data_end2","nome","volantini_ponderati","volantini_consegnati","aperta","archivio")).'}';
	}
	
	function getElencoCliente($idcliente,$min,$max,$orderby,$aperta) {
		$rs = lancia_procedura("elenco_campagna_cliente", "$idcliente,$min,$max,'$orderby',$aperta");
		return '{'.Get_json("rows", $rs, Array("idcampagna","data_start2","data_end2","nome","num_flayer")).'}';
	}
	
	function getRecord($id) {
		$rs = lancia_procedura("leggi_campagna", "$id");
		$campagna = Get_json("campagna", $rs, Array("idcampagna","data_start","data_end","nome","volantini_ponderati","volantini_consegnati","num_smart","citta","provincia","aperta","archivio"));
		if($rs) $rs->Close();
		$rs = lancia_procedura("leggi_campagna_pdv", "$id");
		$pdv = Get_json("pdv", $rs, Array("idpdv","nome"), false);
		if($rs) $rs->Close();
		$rs = lancia_procedura("leggi_smart_campagna", "$id");
		$smart = Get_json("smart", $rs, Array("idsmart","codice"), false);
		if($rs) $rs->Close();
		$rs = lancia_procedura("leggi_campagna_distributore", "$id");
		$distributori = Get_json("distributori", $rs, Array("iddistributore","nome"), false);
		if($rs) $rs->Close();
		return '{'.$campagna.','.$pdv.','.$distributori.','.$smart.'}';
	}
	
	function salva($id,$nome,$data_start,$data_end,$volantini_ponderati,$volantini_consegnati,$num_smart,$provincia,$citta,$pdv,$distributori,$smart) {
		global $conn;
		$rs = lancia_procedura("inserisci_campagna", "$id,'$data_start','$data_end','$nome','$citta','$provincia',$num_smart,$volantini_ponderati,$volantini_consegnati,'$distributori','$pdv'");
		//die("$id,'$data_start','$data_end','$nome','$citta','$provincia',$num_smart,$volantini_ponderati,$volantini_consegnati,'$distributori','$pdv'");
		if($rs->Fields("msg")=='' && $rs->Fields("idcampagna")!="") {
			// inserimento smart-persone
			$idcampagna = $rs->Fields("idcampagna");
			$arrSmart = explode(";", $smart);
			$rs->NextRecordSet();
			$rs->Close;
			if(count($arrSmart)>0) {
				$errori = Array();
				$rs_pulisci = lancia_procedura("pulisci_smart_campagna", $idcampagna);
				foreach ($arrSmart as $i => $idsmart) {
					if($idsmart!="") {
							$rs_smart = lancia_procedura("inserisci_smart_campagna", $idsmart.",".$idcampagna);
							if($rs_smart->Fields("msg")!="")
							  array_push($errori, $rs_smart->Fields("msg"));
							$rs_smart->Close();
					}		
				}
				if(count($errori)==0) { // tutto ok!!
					return '{"error":""}';
				} else 
					return '{"error":"Problemi nel salvataggio degli smartphone: '.implode(",", $errori).'"}';
			} else {
				return '{"error":"Problemi nel salvataggio degli smartphone"}';
			}
		} else
			return '{"error":"'.$rs->Fields("msg").'"}';
	}
	
	function attiva($id,$attivo) {
		$rs = lancia_procedura("apri_campagna", "$id,$attivo");
		return '{"error":""}';
	}
	
	function archivia($id,$archivio) {
		$rs = lancia_procedura("archivia_campagna", "$id,$archivio");
		return '{"error":""}';
	}
	
	function elimina($id) {
		$rs = lancia_procedura("elimina_campagna", $id);
		return '{"error":"'.$rs->Fields("msg").'"}';
	}
	
	function cerca($nome,$data_start,$data_end,$provincia,$citta,$cerca,$min,$max) {
		$rs = lancia_procedura("cerca_campagna", "'$nome','$data_start','$data_end','$provincia','$citta','$cerca',$min,$max");
		return '{'.Get_json("rows", $rs, Array("idcampagna","data_start2","data_end2","nome","num_flayer","aperta","archivio","msg")).'}';
	}

	function cercaCliente($idcliente,$nome,$data_start,$data_end,$provincia,$citta,$min,$max) {
		//die("$idcliente,'$nome','$data_start','$data_end','$provincia','$citta',$min,$max");
		$rs = lancia_procedura("cerca_campagna_cliente", "$idcliente,'$nome','$data_start','$data_end','$provincia','$citta',$min,$max");
		return '{'.Get_json("rows", $rs, Array("idcampagna","data_start2","data_end2","nome","num_flayer","aperta","archivio","msg")).'}';
	}
	
	function getCoordinate($idcampagna) {
		$rs = lancia_procedura("leggi_campagna", $idcampagna);
		$citta = $rs->Fields("citta");
		$provincia = $rs->Fields("provincia");
		$rs->Close();
		$rs_pdv = lancia_procedura("leggi_campagna_pdv", $idcampagna);
		if($rs_pdv->RecordCount()>0) {
			$pdv = Array();
			while(!$rs_pdv->EOF) {
				array_push($pdv,Array("idpdv"=>$rs_pdv->Fields("idpdv"),"nome"=>$rs_pdv->Fields("nome")));
				$rs_pdv->MoveNext();
			}
			$rs_pdv->Close();
		}
		$rs_pdv->Close();
		$rs = lancia_procedura("leggi_log_percorso", $idcampagna);
		return '{"citta":"'.$citta.'","provincia":"'.$provincia.'",'.
		Get_json("rows", $rs, Array("idlog","data_log","idsmart","coord_x","coord_y","foto","num_volantini")).
		',"pdv":'.json_encode($pdv).'}';
	}
	
	function getSms($idcampagna) {
		$rs = lancia_procedura("elenco_messaggio_campagna", $idcampagna);
		return '{'.Get_json("rows", $rs, Array("idmessaggio","idsmart","data_messaggio","testo","inviato","confermato","idcampagna","corriere")).'}';
	}
	
	function getPdv($idcampagna) {
		$rs = lancia_procedura("elenco_pdv_campagna", $idcampagna);
		return '{'.Get_json("rows", $rs, Array("idpdv")).'}';
	}
	
	function salvaSms($smarts,$idcampagna,$testo) {
		foreach ($smarts as $idsmart) {
			$rs = lancia_procedura("inserisci_messaggio","0,$idsmart,'$testo',$idcampagna");
		}
		return '{"error":""}';
	}
	
	function getCoordinateCsv($idcampagna) {
		global $conn;
		$qry = "SELECT nome FROM punto_vendita WHERE id IN 
		(SELECT idpdv FROM campagna_pdv WHERE idcampagna=$idcampagna);";
		$rs = $conn->Execute($qry);
		if($rs->RecordCount()>0) {
			$pdv = $rs->Fields("nome");
			$rs->Close();
		}
		$rs = lancia_procedura("leggi_log_campagna_csv", $idcampagna);
		$nomeFile = "DISTRIBUZIONE_$pdv.csv";
		$pathFile = $_SERVER[DOCUMENT_ROOT]."/".FOLDER."/".FOLDER_IMAGES;
		$fp = fopen($pathFile."/".$nomeFile, "w");
		if ($fp) {
			rs2csvfile($rs, $fp);
			fclose($fp);
		}
		header("Cache-Control: public");
		header("Content-Description: File Transfer");
		header('Content-type: application/ms-excel');
		header("Content-Disposition: attachment; filename= ".$nomeFile);
		header("Content-Transfer-Encoding: binary");
		// Leggo il contenuto del file
		readfile($pathFile."/".$nomeFile);
		die();
	}
}
?>